package com.sc.nft.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.sc.nft.enums.MetaMapSettleDivideTypeEnum;
import com.sc.nft.enums.MetaMapSettleSourceTypeEnum;
import com.sc.nft.enums.MetaMapSettleStatusEnum;
import com.sc.nft.sup.SuperEntity;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 *
 * @TableName meta_map_settle
 */
@TableName(value = "sc_meta_map_settle")
@Data
public class MetaMapSettle extends SuperEntity<MetaMapSettle> implements Serializable {
    /**
     * 订单编号
     */
    @TableField(value = "order_no")
    private String orderNo;

    /**
     * 交易物名称
     */
    @TableField(value = "trans_name")
    private String transName;


    /**
     * 购买人id
     */
    @TableField(value = "buy_user_id")
    private Long buyUserId;

    /**
     * 收益人id
     */
    @TableField(value = "earnings_user_id")
    private Long earningsUserId;

    /**
     * 收益藏品id,这里表示的是收益版图藏品id
     */
    @TableField(value = "collection_id")
    private Long collectionId;

    /**
     * 来源类型
     */
    @TableField(value = "source_type")
    private MetaMapSettleSourceTypeEnum sourceType;

    /**
     * 当前数据状态,发放和未发放以及拒绝发放等内容
     */
    @TableField(value = "status")
    private MetaMapSettleStatusEnum status;

    /**
     * 描述
     */
    @TableField(value = "describe_content")
    private String describeContent;

    /**
     * 版权地图
     */
    @TableField(value = "meta_map")
    private String metaMap;

    /**
     * 参与计算的值,他可能是钱 也可能是燃料
     */
    @TableField(value = "participation")
    private BigDecimal participation;

    /**
     * 手续费
     */
    @TableField(value = "charge")
    private BigDecimal charge;

    /**
     * 分成百分比
     */
    @TableField(value = "divide")
    private BigDecimal divide;

    /**
     * 额度 这个是给用户的钱或者物
     */
    @TableField(value = "quota")
            private BigDecimal quota;

    /**
     * 分成类型,有的是根据手续费分有的根据购买价格分.不同的类型不同的操作
     */
    @TableField(value = "divide_type")
    private MetaMapSettleDivideTypeEnum divideType;

    /**
     * 获取时间
     */
    @TableField(value = "get_time")
    private Date getTime;

    /**
     * 结算时间
     */
    @TableField(value = "payment_time")
    private Date paymentTime;

    /**
     * 乐观锁
     */
    @Version
    private Integer version;
}